package com.fuyun.rpc.common.security;

/**
 * RPC认证接口
 */
public interface Authenticator {

	/**
	 * 认证客户端
	 * @param credentials 客户端凭证
	 * @return 是否认证成功
	 */
	boolean authenticate(ClientCredentials credentials);

	/**
	 * 生成服务端令牌
	 * @param serviceInfo 服务信息
	 * @return 服务端令牌
	 */
	String generateToken(ServiceInfo serviceInfo);

	/**
	 * 验证服务端令牌
	 * @param token 令牌
	 * @param serviceInfo 服务信息
	 * @return 是否验证成功
	 */
	boolean validateToken(String token, ServiceInfo serviceInfo);
}